home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / Booting Gallery / Booting Gallery (source) / Sources / Sound Source / SoundPlayer.h < prev   
Encoding:
C/C++ Source or Header  |  1996-06-22  |  1.1 KB  |  60 lines  |  [TEXT/BROW]

  1. #pragma once
  2.  
  3. #include <SSTypes.h>
  4. #include <Receiver.h>
  5.  
  6. #ifndef NEW
  7. #define NEW    new
  8. #endif
  9. #include <DArray.h>
  10.  
  11.  
  12. class    SoundPlayer
  13. {
  14. public:
  15.     SoundPlayer(OSErr& err);
  16.     ~SoundPlayer();
  17.     
  18.     void    PlaySnd(Handle lockedSndHandle,long length,Boolean loopQ);
  19.      
  20.     enum { kNumChannels = 3};
  21.     enum { kBufferSize = 1024};
  22.     
  23. protected:
  24.     struct    Entry;
  25.     
  26.     OSErr    InitEntryList();
  27.  
  28.     static pascal OSErr    _ReadProc(void* buffer,long length,long refCon,
  29.         SSCompletionProc completion,long completionData);
  30.     void    ReadProc(Entry* entry,void* buffer,long length,SSCompletionProc proc,long completionData);
  31.     
  32.     static pascal void    _CancelProc(long refCon,SSCompletionProc ioCompletion,long completionData);
  33.     void    CancelProc(Entry* entry,SSCompletionProc ioCompletion,long completionData);
  34.  
  35.     void    DoRead(Entry* entry);
  36.     struct Entry
  37.     {
  38.         SReceiver*            receiver;
  39.         
  40.         void*                readBuffer;
  41.         long                readLength;
  42.         long                readPos;
  43.         SSCompletionProc    readCompletion;
  44.         long                readCompletionData;
  45.         
  46.         Ptr                    curPlay;
  47.         long                curSize;
  48.         long                curPos;
  49.         Boolean                loopQ;
  50.         
  51.         SoundPlayer*        obj;
  52.     };
  53.         
  54.  
  55.     DArray<Entry>            fReceiverList;
  56.     
  57.  
  58. };
  59.  
  60.